{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using ZigZag\n",
    "===\n",
    "[ZigZag](https://pypi.python.org/pypi/ZigZag) is a (very) small library [I](http://twitter.com/generativist) wrote for calculating the peaks and valleys of a sequence (e.g. time series data). It also can calculate the [maximum drawdown](http://en.wikipedia.org/wiki/Drawdown_(economics)), a useful metric for trading analysis. The repository is on github at [https://github.com/jbn/ZigZag](https://github.com/jbn/ZigZag). Prior to version `0.1.4` it optionally used [`numba`](https://github.com/numba/numba); starting with version `0.1.4`, I switched to [`Cython`](http://cython.org/). \n",
    "\n",
    "This notebook demonstrates how to use ZigZag, and draws attention to a few caveats.\n",
    "\n",
    "Installation\n",
    "---\n",
    "`pip install zigzag`\n",
    "\n",
    "Basic Usage\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from zigzag import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# This is not nessessary to use zigzag. It's only here so that\n",
    "# this example is reproducible.\n",
    "np.random.seed(1997)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = np.cumprod(1 + np.random.randn(100) * 0.01)\n",
    "pivots = peak_valley_pivots(X, 0.03, -0.03)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_pivots(X, pivots):\n",
    "    plt.xlim(0, len(X))\n",
    "    plt.ylim(X.min()*0.99, X.max()*1.01)\n",
    "    plt.plot(np.arange(len(X)), X, 'k:', alpha=0.5)\n",
    "    plt.plot(np.arange(len(X))[pivots != 0], X[pivots != 0], 'k-')\n",
    "    plt.scatter(np.arange(len(X))[pivots == 1], X[pivots == 1], color='g')\n",
    "    plt.scatter(np.arange(len(X))[pivots == -1], X[pivots == -1], color='r')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following plot illustrates how the sequence was annotated. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAD7CAYAAACMlyg3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXlc1NX+/1+HHdllc4UB9x03ULPEBc3S1MyFsnKpW1b3\nVt7Ksn5py227N2912wtwA5eyVEzBFXdFVBZxR0A22WSZYRtm5v37A2a+jLMww6zAeT4e85A56xuE\neX/OeW+MiMDhcDiczomNpQXgcDgcjuXgSoDD4XA6MVwJcDgcTieGKwEOh8PpxHAlwOFwOJ0YrgQ4\nHA6nE2NnaQHkMMa4ryqHw+HoCRExQ+Zb1UmAiPiLCGvXrrW4DNbw4j8H/rPgPwvtL2NgVUqAw+Fw\nOOaFKwEOh8PpxHAlYIWEh4dbWgSrgP8c/g/+s/g/+M/CuDBj3SsZCmOMrEUWDofDaQ8wxkAdyTDM\n4XA4HPPClQCHw+F0YrgS4HA4nE4MVwIcDofTieFKgMPhcDoxXAlwOBxOJ4YrAQ6Hw+nEcCXA4XA4\nnZhWlQBjLIoxVswYS9fQP4AxdpoxVs8YW9WivRdj7AhjLJMxlsEY+4cxBedwOByO4ehyEogBMENL\nfzmAvwP4933tEgCriGgIgPEAXmaMDWyTlBwOh2MiSmtKcb7gPEprSi0tikVoVQkQ0UkAFVr6y4jo\nApo+9Fu23yWi1OavRQCuAuhpmLgcDodjPLZmbEXgV4GI2ByBwK8CsfXyVkuLZHbMYhNgjAkAhAA4\nZ479OBwOpzVKa0qxfNdy1B2oQ9XdKtRJ6rBi94pOdyIweWUxxpgrgN8BvNp8ItDIunXrFF+Hh4fz\nbIEcDsdkZFdkw+a2DZAC4DyAaYDdeDvkVObA18XX0uKpJSkpCUlJSUZdU6csooyxQADxRDRcy5i1\nAIREtL5Fmx2AvQD2E9HXrezBs4hyOByzIJVK8d0v3+H1/70OmbMMGAlgL2DjboNLey9heD+NH3V6\nIRQKIZFI4OXlZZT17secWURZ80uXcS2JBnClNQXA4XA45sTW1hYzJs+AU54TnB52gnsfdzitdMLc\nqXMx7YFp2Lx5s1HKN+bk5OD69etGkNh0tHoSYIzFAQgH4A2gGMBaAA4AiIh+Zoz5o+lA5QZABkAE\nYDCAEQCOA8gAQM2vNUSUoGEffhLgcDhm4+uvv8b58+fx35/+i5zKHAg8BfB18cWFCxfw7LPPom/f\nvvjpp5/g7+/fpvXLysqQlJSEJ554wsiS/x/GOAnwojIcDqfTQEQ4duwYJkyYgDFjxuDrr7/GoEGD\n4OjoqHRl09DQgLVr12LDhg343//+hwULFui9V2NjIyoqKuDn52fMb0EJXlSGw2kjnd03vLMik8ng\n4OCA9PR0iEQiTJo0Cfn5+SgrK1Ma5+joiM8++wy7du3Ce++9h8WLF6O8vFyvvezt7eHt7Y28vDxj\nfgtGhysBTqeD+4Z3XmxtbTFhwgRER0dj2bJlsLGxwZgxY9CvXz+148eNG4dLly6he/fuGDZsGPbs\n2aPXfkSEo0ePGkN0k8GvgziditKaUgR+FYi6v+qarFxjAGc7Z+S+lmu1boEc41JXV4devXohNTUV\nvXv31nnesWPHsGzZMjz00EP46quv4OnpqXFsdXU14uLi8OKLLxpDZI3w6yAOR09yKnNgJ7Jr8gtP\na2qzt7VHTmWOJcXimIHS0lLs27cPf/zxB8aOHatQACKRCLm5ua3OnzRpEtLT0+Hs7Izhw4fjwIED\nGse6ublhyZIlRpPdlHAlwOlUCDwFqD1YC4wGUAqgGmiUNkLgKbCwZBxT4+7ujhEjRiA6OhorVqxQ\ntItEIuTk5Oi0hqurK3744Qf8+uuveO655/Diiy9CKBSqjGOMwdXVFQBQUlICkUhrnKxF4UqA06ko\nyiqC000nOE1zgv0Qe9hftUfUnCh+FdQJcHR0hFgsRnp6Oh577DFFe7du3TBp0iS91po+fTrS09PR\n0NCAESNGqETxSiT/l0rt2rVrKC21XgcErgQ4nYo1a9bgqcVP4fabt7F00lIMKR6CyKGRlhaLY2Lk\n9saYmBg8+eSTcHR0NHhNT09PxMTE4JtvvsFTTz2F1157DbW1tRCLxfjqq68gk8kAAA899BCCgoIM\n3s9UcMMwp9Nw9uxZLFiwADdu3ICTkxPS09MxY8YMnDhxQqN3CKdjcPr0aYjFYjzzzDOIj4/HiBEj\nFH1EhCtXrmDw4MFgrG021vLycvz9739HSkoKNm7ciNDQUNja2hpLfI1wwzCHoyNEhNWrV+ODDz6A\ns7MzGGMYMWIEFi1ahK1buYtoR2fcuHEQiUTw8/NTUgBA0wfp9evXIZVK27y+t7c34uLi8Mknn2De\nvHlYs2YN6uvrAQC1tbUoKCgwSH5TwpUAp1MQHx+PW7duYdGiRUrtTz75JOLi4oySJ4ZjvdjY2GDz\n5s1Yvny52v7HH38cdnaGJ1V+4okncOrUKdy8eROjR4/GhQsXUF1djStXrhi8tqngSoDT4ZFKpXjv\nvffw8ccfw8XFRdGekZGBLl26oLGxEZcuXbKghBxTQkQoKytDYmIinnzySZPvl5CQgC1btmDNmjWY\nOXMmfvjhB70Nz+aE2wQ4HZ7Nmzfjxx9/xMmTJ5XufEtLS8EYw9dff426ujr85z//saCUHFMhEonw\nzDPPwNnZGbGxsWrH3LlzB+7u7loDwNpCQUEBnn/+eRQVFWHTpk0YNmyYUdfnNgEOpxXy8/OxevVq\nfPbZZypGP19fX/j4+CAyMhLbtm1TeHNwOhYuLi7IysrSeBUEAIWFhWr9/Q2lZ8+e+Ouvv7Bw4UJM\nmTIFn376qZL7qDXAlQBHK+090drGjRsxYMAAPPjggxrHDB48GD4+Pjhx4oQZJeOYi0uXLqG6uhqT\nJ0/WOGbcuHF6pZDQRH19PWpra5XaGGMYMmQIkpKScOjQITzwwAO4du2awXsZC64EOBpp74nWqqqq\n8M033+B///uf2n6ZTIbY2FjIZDKFgZjT8fj111+xdOlS2NiY/uPu9u3bOHnypEr7Y489hiFDhuDg\nwYN45plnMHHiRKxfv94gjyRjwW0CHLUoEq1V1QHJACa3r0RrjY2NeP/991FUVIQNGzZoHHf79m0I\nBALk5+dj1KhRKCwshIODg/kE5ZiUuro6+Pv7IzY2FrNnz9Y4rqKiAtXV1QgMDDSLXLdu3cKyZcsA\nABs2bECfPn3atA63CXBMRk5lDhxsHYBLaKoPl9++Eq0lJyfj22+/xYcffqh1XHBwMGxsbBAQEIDB\ngwcjMTHRTBJyzMGuXbswfvx4PProo1rHiUQiFBcXm0yOsrIylJSUKN737dsXSUlJmDdvHsLCwvD9\n999bzCbFlQBHLQJPARokDU1KwBFAQ/tKtBYbG4vnn38eAQEBOs+JjIzkV0IdjKioKCxfvrzVq6De\nvXsjNDTU4P3u3bun1vBbUlKCu3fvKrXZ2tpi1apVOHHiBDZs2IAZM2bgzp07BsugN0RkFa8mUTjW\nxPsb3yfmxchuqB3ZRdhRXEacpUXSiRs3bpC3tzeVlZW1OjY9PZ2Sk5OJiKi0tJTc3d1JKBSaWkSO\nGcjOziZvb2+z/n/Gxsbq9Ht3P42NjfSvf/2LfHx8KCoqimQymU7zmj83Dfrs5TYBjkaWLVuGHoIe\nsHWzRcrRFPz606/o0qWL0X2pjYlEIsGMGTMwZcoUvPvuu62Or6ysBBEp6ss++uijeOqpp8wSVMQx\nLevWrUNJSQmCg4PxxhtvaB0rlUpx5coVo/vx60t6ejqeffZZ9OjRA7/88gt69OihdbwxbAIWPwHI\nX+AnAauiqqqKPD09qbi4mLKzs6lbt2505swZysrKsrRoWjlx4gT5+PiQSCRq0/wtW7bQo48+amSp\nOOZGIpFQQEAAXbp0SaenaolEQrt37zaZPGKxmK5evarT2IaGBvp//+//ka+vL8XGxmqVH0Y4CVj8\nw18hCFcCVsXPP/9M8+bNIyIimUxG/v7+lJuba2GptCOTyWjKlCn0448/tnkNoVBIHh4eVFpaakTJ\nOObmwIEDNGrUKLPuWV9fT/fu3dPYt2vXLr3WO3/+PA0ePJgef/xxKi4uJiKiElEJJecnU4mohIiM\nowS4YZijFnn1pZ07d6KwsBBhYWE4e/aspcXSysGDB5Gfn681MvR+iAgxMTFobGwE0FQ5aubMmfj9\n999NJSbHDMgNwg0NDWbzxS8uLsapU6fU9jk6OmLOnDk6rUNEqKiowJgxY3DhwgX07dsXI0aMwOvr\nXzdN3E5rWgJAFIBiAOka+gcAOA2gHsCq+/oeBnANwA0Aq1vZRy8tyTEdmZmZ1LNnT2psbKTKykpq\naGigTz75hFatWkXZ2dmUlpZmaRFVkEqlFBwcTN99953ecwsLC0kikSje7969mx588EFjiscxI+Xl\n5eTh4UH37t2jI0eO0JkzZ3Sad+PGDaqurjaxdK2Tn59PX3zxhVLb3kN7iXkzwjAQ3gJhHcj5Y2ez\nnQRiAMzQ0l8O4O8A/t2ykTFmA+Db5rlDAEQyxgbqppo4liQqKgrPPvss7Ozs4OHhAQcHB8VJwMXF\nBR4eHpYWUYUdO3bAy8tLr1OAnO7duysVAHn44YeRmZmJvLw8Y4qoQntPyWGtxMXF4ZFHHoGXlxcm\nT56McePG6TSvtLQUdXV1JpMrJycHVVVVrY7r2bMn3nzzTaU2v4F+cPuHG9AFwMWmNntbe6PI1aoS\nIKKTACq09JcR0QUA9zvHhgK4SUS5RNQIYBsA3c5DHIshFouxZcsWRTSjnLFjxyI1NRUeHh5mi6rU\nFbFYjHfffRf//ve/4eTkZPB6Dg4OmD9/PrZt22YE6dTT3lNyWDPyqyB9mTBhAvz8/Nq8b2lpKRoa\nGjT2FxUVoaampk1rCzwFaLRtBGYCeKCprVHa2Ka17seUNoGeAFo+SuU3t3GsmPj4eAwaNAh9+/aF\nSCRCVFQUAMDNzQ3BwcFIT0+3sISq/PzzzwgODtaaIEwbGRkZOH78uFKbKXMJldaUYsWeFairrUPV\nb1WoE9dhxe4V/ERgBC5duoSKigpMmTIFACAUCuXXzSbn/PnzWgvKjx8/vlWXTyJCfn4+cnNzkZ+f\nr2j3dfFF1JwoONk4wd3JHc52zoiaE2UUublhWE86+hE+KioKK1asAAB06dIF8+fPV/SNGzcOZ8+e\nxdGjR1FWVmYpEZUQiUT46KOPDCraERwcjJEjRyq1PfjggygtLTVJRShFSo4yNB3tr7SvlBzWilgs\nxo8//ohly5bBxsYGjY2NiocYXSgpKTEoYveRRx5Br1692jwfaMp1lJSUBLFYDLFYrNQ3v/98vMne\nxMElB5H7Wi4ih0YatJccw+upaaYAQMuY/V7NbRpZt26d4uvw8HCEh4ebQq42szVjK1bsWQEHWweI\npWJEzYky2n+ENZCfn4+zZ88qPGNsbGyUAsPCwsJw7NgxPPLII3B2draUmEqsX78eEREROgWGaaJl\ntTE5tra2ivrDH330kSEiqiDwFEAsFQOVAJwBnALEI8TtJiWHtZKfn4+4uDhcvnwZAGBvb4/XXntN\n5/kikUjpumbPnj0YOnQogoODjSJfVVUVysrKtCaL69KlC5YsWaK2z8HBAZPGT8K+X/cZRR4FuliP\nAQgAZLQyZi2Af7Z4bwvgFoBAAA4AUgEM0jLfSLZ101AiKmmyxi8HYd7/Wefl/rodgY8++ohefPFF\njf0ZGRnUt29fM0qkneLiYuratSvdvn3bKOvdH5STkpJCwcHBOofw60NcRhzZTbUj+1H2xPwYvf3T\n20bfoyMikUg0BgLGxcXR1KlTjbaXUCiktLQ0qqmpaXVsQ0MDFRYWah1TVFSks6eSrsAc3kGMsTg0\nuYD2Z4zdYYwtY4y9wBj7W3O/P2MsD8DrAN5tHuNKRFIArwA4ACATwDYiumo07WVmFEf4FDS90LGO\n8DKZDDExMYqrIKApE2dLv+dBgwahuLgY5eXllhBRhX/9619YvHixUQqE79+/H5mZmUpto0aNgp2d\nHc6fP2/w+vcTOTQS87vNx/yR8/Gvt/6Fs1utOwbDWqisrMT27dvV9sXExOC5555TvK+trdVqqG0N\nV1dXVFZWor6+vtWxIpEI586d0zqmW7durXoq3bhxQ5GA7vTp00p719fXm8a+YagWMdYL7eAk4PSR\nE8EThB4d7yRw5MgRGj58uNJTb319vcpT0JQpU+j333/XO/rR2GRlZVHXrl3p8uXLlJiYaPB6NTU1\nJJVKVdrXrVtHr776qsHrq+ORRx6h2NhY2rFjBwkEAjp9+rRJ9uloCIVCysvLU2o7deoUubm5UV1d\nHZWWllJFRQWdOnWKzp49q/O69fX1ihiYhoYGrWOTk5PbnJpEE1KplHbs2KGIWUlOTlb6+9u6dStl\nZ2crzQGPGDYfvi6++HjEx0A9wKqYwjrfHgqs6ILcINyyDq+joyO6dOmiNC4sLAypqakYMmSIuUVU\n4v3338err76KIUOGYPr06Qav16VLF7XphiMjI7F9+3aTRJ1mZ2dj6NChWLBgAd588018+umnRt+j\nI1JZWYnbt28rtSUmJiIyMhJOTk7IyspCcXExJkyYgLCwMJ3XlclkKCkpARHhl19+QXV1tcaxYrG4\nTSfQzMxMiEQitX02NjZYsGCBImZl7NixSn9/ixcvNo17tqFaxFgvWPlJgIjoq6++orDxYeTg6EBH\nTh+xtDhGo6Kigjw8PHRKgbt7926aPn26GaTSzKVLl6hbt25GTxEslUqVIofljB49mg4ePGjUvWQy\nGTk5OSme7Gpra6lbt26Unp5u1H06GvX19VRXV6fUJpVKKTAwkC5evGi0feS/B42NjRpPE6dPn6ZL\nly4RUZN9Spdo41OnTlF5ebnR5AQ/CZiX/fv345+v/xPBQcHIvJDZ+oR2QlxcHGbMmAFvb2+l9o0b\nN6q4goaFhSE5OdliVZAA4J133sF7770HV1dXZGdnGy3Kc+fOnSpPmIBpYgZKSkrg6OgIW1tbVFVV\n4d69e3jttdfw2WefGXWfjsaVK1dw+vRppbZDhw7By8tLxc23rKyszXfo8qdxW1tbVFdXq/19Hzhw\nIAYMGAAAuH79uk6VySZMmICuXbuq7cvIyFAqUl9VVaX4Xuvq6nSyTbQJQ7WIsV6w8pNATU0Nubq6\nUkVFBc2cOZP27t1raZGMxqhRo9TeqwuFQrVPxgKBgHbv3q0oxmJOjhw5QsHBwYo72wMHDhjtyUrd\n90rUlMvFy8tL5QnUEM6cOUNjxowhIqLbt2/T2bNnqaqqiry9va0+Xbc1UFFRQZcvXyYiojlz5tBT\nTz2l1C+RSGjt2rV6e3ZlZGTQrVu3tM47duyYxmyhhnDkyBElG0BNTQ2lpqYSEdGFCxcoKSlJZQ74\nScB8HDt2DCNHjoS7uzsEAgFycnIsLZJRSE1NRVlZGaZNm6bS5+rqqpRTR05YWBgKCgrQt29fc4io\ngIiwevVq/Otf/1IUg4+IiND4ZKUv6r5XoCmXS0hICPbv32+UfYAme4BAIAAABAUFISwsDO7u7njx\nxRfxxRdfaJ2blJSk8V65s0BEqKmpQUVFBZKSkvDll18q9dva2uK9995TsnHpQlFRUav/zz4+Pkpx\nMvo8oVdXVyMjI0Nt3+TJk5VsAF26dMGIESMANHmqGRIQqQ2uBHRk//79eOCBBxAdHQ2BQIDbt2/j\n2LFjbT5uWgtRUVGKCEtdGTduHNLT0xXVuMzFzp07IZFIsHDhQpPtIRKJFGmlW2LsK6Hs7Gy4uLio\n1KN99dVXsWPHDhQVFWmcK5PJcP36daPJ0p4QiUSQSCTw8vJCaGgo4uLiMHPmTPj7+6uMbYvhNiIi\nAq+88oqS8igvL8fFixcV7wcPHqzIUVVZWYno6GhkZWXptL5ceVkTXAnoSEJCAhYuXIgVK1ZAIBDg\nzp07sLOzU1tUur1QX1+PrVu3qiSLA5rurDdu3Kh23rhx41r1iTY2jY2NePfdd/H5558rFFZFRQVy\nc3ONuk9CQoJKQXAAmD9/Pg4cOKDVY0QfcnJy4Orqqnh/584dFBcXw9fXF08//TTWr1+vce7w4cNh\nb2+cDJLtjcOHDyuldoiOjjZ5KVBbW1uNCsXT0xPPPvssUlNTdVrLw8NDbaxAWlqa2lQsV65cwZUr\nV1BSUqKf0Ppg6H2SsV6wYpvArVu3yN/fX+FHfu7cOcV9bntm69atFBERobZPKpVq9IOuq6ujLl26\n0KZNm9pUVLst/PjjjyrRoHfu3DGrXeKxxx6jDRs2GGWtadOm0f79+xXvMzIyFJHPubm51LVrV5Pc\nO3ckjh07Rj4+PhQdHW22PRMTE6moqMjo66alpan9/y4oKKBr167R1q1b1c4DLy9pHr799lt69tln\nSSwWk0wmo+LiYvLx8bG0WAYzbdo02rZtW5vmhoaG0p49e0gsFhtZKlVEIhH16NGDzp8/b/K9tLFt\n2zajucf26dOHrl27prF/2bJl9OGHH6q0FxcX86CyZlauXEkrV640SVoPTeTl5RnsIJCZmakoF2ko\nxlAC/DpIB/bv34+ZM2ciMTER6enp8PX1RU1NDYRCIf744492aRfIyclBamoq5s6d26b5YWFhuHbt\nmlmuJb7++mtMnDgRY8aMMfleAFBYWKg23cDs2bNx7tw5nVwBtSGVSpGXl6fVtXX16tX43//+p3J/\n7OjoCF9fX6Smppr2isBKqaysBBGhvr4eO3bswFtvvaW38bctXL9+HdevX0evXr0MrllB//fgaxVw\nJdAK9fX1OH78OCIiIjBr1iwMHz4cjDGFXaBfv35W9R+qKzExMXjyySfh6Oiotv/o0aNITk7WOF9u\nFxCLxRq9HYxBeXk51q9fj48//lilLy0tzaDcMJpITU1FZWWlSnuXLl0we/Zs/PbbbwatX1hYCC8v\nLyWfcKApF/69e/cAAAMGDMCkSZPwyy+/KI3x8PBA3759FTEGnQkiwqZNmyCTybB7926EhIQoPKxM\njZubG9zc3Iyy1pAhQ5QM2ZmZmVoNy9HR0TpVJGszhh4ljPWClV4HHThwgMaPH6/S3p5jBSQSCfXu\n3Vvhg6wOsVisNX/KrVu3qGfPnlRZWUlHjx412ZF81apVtHLlSrV9CQkJreZ4MTb79u1T+/ugD8eO\nHaMJEyaotJ87d07pquHChQvUs2dPqq+vN2i/jsj06dMpLi7OrHvGx8cbLWNtS/Ly8uju3bsa+zMy\nMjT+noNfB5me/fv34+GHH1YcQeW051iBQ4cOwc/PT+GDrA57e3uFL746goOD0dDQAKFQiPDwcJMc\nyXNzc7Fhwwa8//77avtnzJihVUZTMG3aNNy8eVNtZLGuZGdnIygoSKU9NDRUcdVQVFQEoVCIIUOG\nYMuWLYoxp0+fVuu91JnIzc1FSkpKm68y28pDDz3UamUwXairq8PJkycV73v16qXWxVXO0KFDTfp7\nzpVAKyQkJGDmzJkQi8X4/vvvFe1yJXDy5EkUFhZaUEL9aVk9rK0wxhAWFqZwFSUiXLp0yahXY2vX\nrsVLL72Ebt26GW1NXcnKylKbMtve3h4LFiwwqP5wdnY2vL29tf7eODs7o2/fvlizZg0+//xzRQK7\nbt26oUuXLmhoaMDBgwfbLEN7pLGxEdXV1di4cSMWL15s9sJG7u7uGq9P9cHOzs4o6c+NBVcCWsjN\nzUVZWRlGjx4NR0dHrFq1StEnVwK9e/dW8ve2dsrKynDgwAFERmqviPbtt99CKBRqHSMvNwk0KYWC\nggKjZdvMyMjA/v378eabb6rtLygoMHqMQEuEQqHGSFBDA8dycnLg6+ur1TDs6emJnj174qGHHoKP\njw927twJoOkE5u7uDnt7e7MH61ma4uJiJCQkqNS9aG/Y29srYgWysrLMHnNzP1wJaGH//v2YPn26\n2mhauRIIDAyEu7u7BaRrG1u2bMHs2bOVykaq4/nnn29VubU8CQDArFmzjPaEs2bNGrzzzjsaf7Zi\nsdh0CbUAhISEoGfPnmr7JkyYAKFQ2GaDeHZ2NiZMmKC1zKAcxhjWrFmDTz/9VOmUZWNjYzZvKWuh\nV69e8Pb2hoeHh0qyuPaKj48PAgICWh9oQrgS0IL8KggAGhoalNIJtEebABEhOjpap6coR0fHVu/5\nQ0NDcfHiRbVpFgzhxIkTuHz5MlauXKlxTFBQkCKDo7mxsbFBZGRkm08DmmwC95OYmIiSkhI8+uij\nkEql2LVrF/bt072+bGZmpsHurNaG/PfXHG6hpuTatWu4ffs2PDw80L17d4vKwpWABsRiMY4ePaoo\nWJKamqqUwlYeK5Ceno4LFy5YSky9SElJQW1trdESUXl4eCAgIEBR2DsvL8/gDx2ipiRxH374oVHu\nXw3h+vXruHnzptq+yMhIbN26Ve+U2mKxGHfv3kVFRYWKi+j9DB06FG5ubmCM4Z133sGXX36plLTv\n5s2bWk8jdXV1CpfTjkB+fj7++usvk6eJMAfOzs5mt2logisBDZw6dQoDBgyAr29T5bCwsDClD095\nrIBIJLK4JteVqKgoLF++vNWnqJycHMTGxuq0Zku7QHV1tcHJsfbs2YOamhqtf+hEhBMnTpi8poGL\niwtcXFzU9g0fPhwuLi44c+aMXmvm5eWhR48eqKmpaVX+nj17Kj4oFixYgKKiIqUAMQ8PD5UaEC0Z\nM2YMBg0apJd81sxXX32FsWPHav2e2wuBgYGwtbXFrl27LC0KVwKakEcJa0MgEKCiosIobmOmpra2\nFjt27MCzzz7b6tjAwEAsWLBAp3Vb2gWGDBmC4ODgNssokUjwzjvv4NNPP9UaCCWTySCTyfTKfNoW\nevXqpfH/ljHWJgOx/CrowQcf1MuhwM7ODm+99ZZSCUo/Pz+N8lVUVBj9ms7SJCUlaXQUaI94enpi\n/PjxlhaDKwFNyOMD5AiFQpUnt/ZkF/j9998xfvx4jcbOljDGdPZLbnkSMJRNmzbB19e3VeVra2tr\nstzq+hAZGYnffvtNrw9bXe0BQNMHudwrCABGjBiBlJQUnTJWnj17Frm5ubh161aHuBJKS0tDSUkJ\npk6damkqT1qWAAAgAElEQVRRjIJMJkNiYiL8/PwsLQpXAurIz89HYWEhQkNDFW2xsbEqd7gCgQA3\nb95EfHy8uUXUG31iA/RJjz1kyBAUFBSgoqICdXV1SE9Pb5N8dXV1WLt2LT7//HOrMvrduXNH45E9\nODgYffr0weHDh3VeLzs7G71799bJjuTm5qb0pBgUFISXXnpJqQTlX3/9pdaVd+bMmejbty+qq6tN\n6kVlLqKjo7Fo0aJ2maJFHTY2Nujdu7dFy7QqZLG0ANZIQkICIiIilK4kXnzxRZXju0AgQF5ensW8\nVHTl5s2buHbtGmbNmqXT+JiYGJSWluo01s7ODqNHj1bUHW7rU+e3336LsWPHqs213hKpVIrdu3eb\nrY5D79698dBDD2ns19dLKDs7GwEBATrZTuzs7JSue/z9/bFq1SocPnxYYbAeNGiQ1lPbqFGj2sV1\npTYaGhoQFxeHwMBAtQF87ZWQkBCryP/ElYAaWrqGakOeRK5///5mkKrtREdH4+mnn9b5imf58uXw\n8fHReX25XcDFxQXh4eF6y1dRUYEvvvgCn3zyiaJNJBKpjaglIvTv399sEZeMMa3lKxcuXIg9e/a0\n6ukjJycnBwMGDNCqWLTh5uaGl156SVGCMjg4WMWLKisrq0M8/cvZvXs3hg8fjldeeUVregVO22hV\nCTDGohhjxYwxjed8xtg3jLGbjLFUxlhIi/bXGWOXGWPpjLFYxph5E720gcbGRhw+fBgzZsxQtInF\nYrVPbu3BJiCRSLBx40a9IixtbW31upLR1y5w5MgRpWjfzz//HHPnzsXAgQMVbRUVFbh+/Tri4+OV\nMoXa2dlZzOPl4MGDKjmDunXrhtDQUOzdu1enNfSxCQBNuYLS0tJARNi2bRukUin+8Y9/YOfOnSgo\nKAAAFZvEjRs3IBaLFe9TUlLUZkVtL0RHR2P58uWWFqPj0lqGOQATAYQASNfQPxPAX81fhwE42/x1\nDwC3ATg0v98O4Bkt++iYc8+0HDt2jEaOHKnUdvPmTdqzZ4/KWJlMRs7OzrRz506qqKgwl4h6ER8f\nr1fWy8rKSkUFNV0pKCigrl27kkwmo8uXL1NlZaXacRKJhBISEqiwsJBqa2uJqCmDYteuXSk/P1/t\nnCtXrigyKOorl7EpKSlRm80xJiaG5syZ0+r8mpoacnJyovz8fMrKytJpz8rKSqqpqSGZTEbXr19X\ntL/++uv0+uuvExHR5s2bqaCgQOMaaWlpVvv72Rp37tyhrl27Uk1NDZWUlFhaHKsD5sgiSkQnAVRo\nGTIHwKbmsecAeDDG5Gc2WwAujDE7AF0AWH2mNXVXQX379sXs2bNVxspjBVxcXAwuNGEq9E0Wt3fv\nXp3tAXJ69OgBFxcX3Lp1C7W1tRrv66VSKfz9/dG9e3eF//sHH3yA559/XqPXUss772PHjmmtcWBq\nfH191V6pzZs3D0ePHkVFhbY/k6aroICAAEilUqUndW14eHigS5cuYIwpXTuuWrUKGzZsQHl5OZ54\n4gmt9/7Dhw9vNU2ItbJhwwYsWrQINjY22L17t6XF6ZjooikABELzSSAewIQW7w8BGNX89T8ACAEU\nA9jcyh4m0pX6ERISQsePH9d5vDXXFbh79y55enpSdXW1yfdasGABbd68Wa85mZmZ5OPjo1JbVSqV\nUnp6ulJbbW0tSaVSq8itX1ZWRmfOnFFqmz9/Pv36669a5/31119GK09JRPTcc8/R2rVrldoSExPN\nXmPBVEilUgoKCqKUlBRLi2K1wJrrCTDGPNF0SghE09WQK2NMa7z3unXrFK+kpCRTiaaRoqIi5OTk\nqARwVFVVafQFt2a7wKZNm/D4448brSKSNsLCwrTaBeg+174jR47glVdewVtvvaWSDbOhoQH5+fmK\n90KhEBs2bABjzOKpJICmkH95JHFlZSUKCwt18hLS1x4ANP3cvv/+e2RmZqpkm3zrrbfw3XffKVxE\niQj29vZqjeYHDhyASCTSa29Lk5SUBDc3N4waNcrSolgNSUlJSp+TRkEXTQHtJ4EfASxq8f4aAH8A\nTwD4pUX70wC+1bKHaVSlHsTExNATTzyh0v7HH3/QnTt31M75/PPP6ZlnnqHLly+bWjy9kMlkNGDA\nADp58qTOcwoKCtr8pH3y5EkaM2YMlZSU0NWrV1X6ExMTlZ7ujxw5Qr169VLYBlpDIpG0SS5Tc+PG\nDUpJSSGRSEQuLi6Ul5encew///lP+uyzzygjI0Pl9KONe/fuUUVFhdo78UWLFtF//vOfVte4du2a\nzj9ra+Gpp56ir776ioiI6urqNNqaOjMw40mANb/UsQfAMwDAGBsHoJKIigHcATCOMebEmlxNpgK4\nqp+KMi/3RwnLmTdvHnr37q12jjx1hLXlD5Inu5swYYLOc1JSUtr8tDhq1ChkZmaipqZG7X13eHg4\n+vXrB6DpwWPt2rX44IMPdE6iZQ3+1Oro168fRo8eDRcXF0ydOlVrsRn5SUAsFusVJOTl5QVPT09F\nHquWvP3221i/fn2rtZYHDBhgNQnLdKGyshJ79+7FkiVLADQFcBorMp1zH61pCQBxaDLoNqDpg30Z\ngBcA/K3FmG8B3AKQhmZ7QHP7WjR98KcD2AjAXss+JtWYrdHY2EheXl4avVQ0ce7cORozZoyJpGo7\ny5Ytoy+++MKse44ePVqnk8fevXtp8ODBGusYX7p0qd09tRI11aPW9rswatQoSk5ONvq+M2fOpJ9+\n+sno61qS77//nhYsWGBpMaweGOEkYNBkY74srQROnTpFw4YNU2mXSCRUVlamcV5xcTH5+PiYUjS9\nqa6uJk9PT63Fq03BSy+9RF9++aVKu1AoVBSil0gkNGzYMNq1axcdP36cTpw4oTL+yJEjSgXX2wuN\njY3k7+9PN27cUNvv5eXVJjfHK1eu0Nq1azW6eZ44cYKCg4OpsbFR6zrx8fEarzWtjTFjxtD+/fst\nLYbVYwwlwCOGm9EUJSwUCpGQkKBxnryugDW5r+3YsQPh4eF6RVfeuHHD4DTQ8qCxkydPKrmJ7tix\nQxHuHxsbCzc3Nzz22GN44IEHMHHiRJV1Jk+ebLUut9qQp9CIjo5W6auqqoJYLIa3tzdOnDihYijX\nRp8+ffD0009rTGs9ceJE9OjRA7/99pvWdcLCwixSr1lf0tPTcffuXURERCjaqqqqtJbj5LQdrgSa\n0ZQ62tPTE0899ZTGeYwxBAYGavwDtQRtKSRfUFBgcOrhlmmlW9YaXr58Oby9vVFfX4/3339fkSTO\n1KmgLcHKlSvxxx9/qHzIy+0BRASJRKJXRLaDgwP69OkDe3t7jWPUlaC8H19fX61rWAvR0dFYunSp\nkh3o0qVLVuuF1+4x9ChhrBcseB1UXFxM7u7ubfavtqZYgdTUVPL19W31asAUyGQy6tq1KxUWFqrt\nX79+Pc2ePVupTR4TIL8uunz5MhUVFZlcVlMhk8koKCiILly4oNT+559/qnzvxt43JCSE4uPjWx1n\nzXEE9fX15OPjo3NEdWcH/DrIOBw4cABTpkxRGw2qS7Usa4oV2LBhAyIiIsyWYK0ljDGEhoYq+bOX\nlpaisbERVVVV+Oyzz5SSxAFNJ4b8/HzF9ZGNjU27PiHIi83cX5ktOzsbAoHApPu+8847+OSTT7Se\nBjIzM5GYmGgyOQwlPj4ew4YNM6g4EUc/2u9fmxHR5BoKAFeuXMGNGze0zhcIBEhISLB4JSexWIxN\nmzbhjTfe0GteaWmpSmK0tjJu3DgkJCQolOKpU6dQXl6Of//733jkkUcwdOhQpfH29vaYOXOm4ppi\n0KBBVlFowxC6deuG2NhYJTdQ+XVQWVmZoiazsZk/fz7Kyspw/PhxjWMGDx6sc0pxSyAvgXo/JSUl\nZksf3tno9EpAKpXiwIEDGlNHjxs3DiNHjtS6hkAggFQqtfgT7N69exEQEKB3auv6+nqDjcJywsLC\nkJaWprjznjt3LogIP/zwAz744AOtc6uqqnROyWzNrFixAv7+/jhx4oSiraVNQNuTuiHY2tqqlKC8\nHxsbG6sq2tOSvLw8nDt3DvPnz1fpO3DgQIdKj21NdHolcOHCBfj5+SEgIKDNawgEApSWllo8oCkq\nKgqvv/46CgoKUFRUpPO83r17Y9iwYUaRITQ0FJcvX0avXr0UbR9++CGWLVvW6s/44sWLSEtLM4oc\nlsTZ2Vml/rBcCfj6+hrtZ62Op59+GpcvX9ZauUwmk1nN9WVLNm7ciEWLFqkNaluyZIleNZk5emCo\nUcFYL1jIMPzBBx/QqlWrNPYXFha2mrLAGmIF8vPzycvLi2pqaujq1at6B70Zk/79+1NaWhrduXOH\nLl68SN7e3lpjLVoiNxC3d7Kysqhr167U0NBAMpmMXFxczJb2YP369WrTn8iRSqUUFxdnEecBTUil\nUgoODjZJMF1HBtwwbDiaXEPlJCYmKrk7qsPX1xdCodBkd726sGHDBkybNg3l5eUYOHCgTgXl5Zw5\nc8ao961jx47Fli1bcPv2bbz//vv45z//CW9vb53mWutVhb7Y2dmhW7duSExMRFlZGRwcHFBYWGiW\nVNjPP/88jh07huvXr6vtt7GxQWRkpEWcBzRx/PhxuLi4YMyYMSp9EokExcXFFpCqc9CplUB5eTky\nMzPx4IMPahyzdOnSVssyMsYQEBBgsWAWmUyG6OhoREZG6lxCUg4Roba21qhXWaGhobh27Rq6dOmC\nixcv4tVXXzXa2u2FgIAAvPLKK4iLi1NcBfXq1cukHkJyXF1d8corr+Dzzz83+V7GQm4QVvcQIBKJ\nLJJVuNNg6FHCWC9Y4Dpo69atNGvWLKOsZclYgaNHj9KwYcMUVyl1dXV06tQpi8hCRHThwgUaPGAA\nTRkzhn7SIcNlR6WkpIQ8PDwoKiqK5s+fb9a9y8vLycvLi3Jzc9X2V1dXU05Ojlll0kRlZSV5eHhQ\naWmppUVpd4BfBxlGa1dBNTU1KCsr02ktS8YKyCOE5U9RljZQD8vMxO3r15F74QKWv/cesHWrReWx\nFL6+vhg6dCjWf/EFetvbA3pWbDOErl27YsWKFfjyyy/V9guFQty5c8ds8mhj27ZtiIiIgI+Pj6VF\n6ZwYqkWM9YKZTwJSqZT8/f21Ribevn2bDh8+rNN6b731Fi1evNhY4ulMRUUFeXh40MWLF9tUgenG\njRsanxbbREkJkbMzTQDoF4AIIHJ2bmrvhHy6eDEBoAV2diR1ciKKizPb3gUFBW1OWmdOxo4dS/v2\n7dPYLxQK222NZFMDfhJoO6mpqfDw8NAamRgUFIQpU6botN6QIUOM5muvD1u3bsX06dMRGBjYpiAr\no0fo5uQADg44BeA5eZu9fVN7Z6O0FC/v2gVnAM9IJLCprwdWrDDbiaBHjx5YuHAhvvnmG7Ps1xYy\nMjJQWFiI6dOnaxyTm5uLzMxMM0rVuei0SkBblHBbGDhwoF6++cZCfhXUtWtXpcI3mZmZSiUaNdGn\nTx8ln36DEQiA+4vKNDY2tXc2cnLg5uiIGAAK1wMzK8Q333wTP/zwA6qrq9WIl6PI7mopYmJiVJLF\n3c+QIUPwwAMPmFGqzkWnVQKaUke35O7duzp7/FjCJpCWloaSkhJMmzZNpc/R0dEyGSN9fYGoKMDZ\nGXB3b/o3KqqpvbPRrBAXAfCQt5lZIfbp0wczZszAjz/+qNJXUVFhkdOrHLFYjC1btmDZsmUWk4GD\nzmkTqKioIFdX11arVyUkJFBBQYFOa9bV1ZGDgwMJhUJjiKgTf//73+n999+nyspK2r17t97za2tr\nKSkpyQSSUZMNIDm509oCFMTFNdlE3N2b/jWjTUBOeno6devWzeqqtf3+++8UHh7e6ri8vDyrCmyz\nJsBtAm3j0KFDmDhxoiI8XVPitxkzZqBHjx46reng4ICAgADk5uYaTU5t1NfXIy4uDsuWLYOTkxNC\nQkLatI67u7uRJWvG1xcYO7ZzngBaEhkJ5OYChw41/RsZaXYRhg0bhjFjxmDDhg1m31sbmpLF3c/x\n48d58jgT0imVQEvXUCLC5s2bUWqgsc7Gxgb9+vUz25XQ7t27MXLkSAgEAjg6Oqrk5amrq8PRo0e1\nruHs7NxqcjyOEbAChbhmzRp88cUXSh+mRIQzZ87oVfTeWMgLx6tLFnc/Tz75ZLusNNde6HRKgIiQ\nkJCgMAozxrBkyRL4+vri6NGjEIlEAJpC1fV9qjenXaC16mF2dnbw8PDQ2M/pXIwfPx6BgYHYtm2b\noo0xhvr6eos8ZW/atAkLFy5Ely5dzL43R5lOpwQyMjLg5OSEvn37QigUAoAi1YK/v78i4Kqurg4X\nL17Ua+26ujqzuLLl5ubi0qVLmDt3LmpqahATEyO3qyiwt7fHqFGjtK5z7tw5lJSUmFJUjhWxZs0a\nfPbZZ0pP/pMnT9Y71YihyNOc6HIVVF1dbfApnaOdTqcE5FdBIpFIKdUv0FRwQ14r2M3NDfPmzdNr\n7fHjx5sl0VVMTAwiIyPh5OQEZ2dnzJ49u02J17y8vODo6GgCCTnWSEREBBwdHREfH29ROU6cOAEn\nJyeMHTu21bHFxcW4deuWGaTqvHQ6JSC/CnJ3d8cLL7xg1LVDQkJMHoovlUoRExOjeIqysbHRGG6f\nmpqq9Uqrf//+/MqoE8EYw5o1a5RKUN67dw+pqalmlSM6OlopzYk2+vXrh/Hjx5tBqs5Lq0qAMRbF\nGCtmjKVrGfMNY+wmYyyVMRbSot2DMfYbY+wqYyyTMRZmLMHbQnV1NVJSUjB58mSNY/bt24eSkhKU\nlZXh3r17eq1vDpvA4cOH4ePjg5CQEBCRVqOel5eX4mTD4QDAvHnzUFVVpXAaMHelsaqqKuzevRtL\nliwx254c7ehyEogBMENTJ2NsJoA+RNQPwAsAWkalfA1gHxENAjACwFUDZDWYw4cPY9y4cXBxcUFp\naanaOgEhISFwd3dHXl6e3hHAzs7OqK6uVhiXTUFLg3BJSQliYmI0jg0MDNR4Sjh37hyuXLliEhk5\n1ouNjQ1Wr16tKEHp6emJESNGmG3/7du3Y+rUqfDV0VPq9u3bEN8fgc4xKq0qASI6CaBCy5A5ADY1\njz0HwIMx5s8YcwfwIBHFNPdJiEg1dt2MtIwS/uuvv9DQ0KAypkePHnBycsLIkSMxZMgQvdZ3dXWF\nQCAwWaxAeXk5EhMT8eSTTwJoMmQ/88wzbVqrf//+OsdAcDoWTz31FK5fv47z58+bfe/WvNruJy0t\njccImBhj2AR6Ashr8b6guS0IQBljLIYxdpEx9jNjTLV4qJkgIqX4gKVLlxrdPY0xhj59+pjsSig2\nNhazZs2Cp6enok1baoja2lrs379fbZ+Xl5fSOpzOg4ODA9544w3FaSAzMxPZ2dkm3/fy5cvIz8/X\nmizufubNm8fdSE2MKQ3DdgBGAfiOiEYBqAXwtgn308rVq1fBGMPAgQNbHbtr1y4kJia26QlEF7vA\ntWvX1Cb00gYRKT1FNTY2ora2VusceRRzS2pray2aL4ZjHTz33HM4deoUrly5Ajc3N7N80MqTxVlT\nWUtO0we1oRQA6N3ifa/mNgDII6KU5q9/B7Ba20Lr1q1TfB0eHo7w8HAjiNeE/BTAGMPdu3fh7u6u\n8Rd/6tSpSEhIaFMkpYuLCw4dOoSXX35Z45jKykqd70TlXLhwASKRCJMmTQIAFBYW4vz583jiiSc0\nzrGzs1O50srOzkZxcbHOKbI5HZMuXbrgH//4Bz7//HNs3LjR5PuJxWJs3rwZp0+f1nlOZWUlampq\n9KqX3dFJSkoyfqlNXRIMARAAyNDQ9wiAv5q/HgfgbIu+YwD6N3+9FsDnWvYwVk4ltUydOpX+/PNP\nIiI6fPiwcQuptCA2NpYef/xxrWPy8/Pp4sWLeq374osv0scff9wmmSQSCUVFRVFdXV2b5nM6JhUV\nFdS1a1fKzs4mIqKGhgaSSCQm2Wvnzp300EMP6TUnOzubzp49axJ5OgowQgI5RvdFmt4PYywOQDgA\nbwDFzR/mDs2b/9w85lsADwOoAbCMiC42t48A8CsAewC3m/uqNOxDrcnSVkQiEbp3747CwkK4ubmZ\nZA85ycnJePnll7Ua3crLy1FZWYk+ffrotGZtbS169eqF9PT0Nuf+Ly0t1fv0wen4vP322xCJRPj2\n22+xc+dOhISE6Px7qQtEhNLSUixfvhwLFy5ssyMDRz2MMRCRYT6+hmoRY71gwpPAnj17aPLkySZb\nvyXFxcXk4+NDUqlUbb9UKqVz587pteamTZto5syZivdisVjnFNccjjaKiorIy8uL7t69a5JTgFgs\npo8//pi8vLxIJBIZff3ODngq6daRyWT47rvvFHfgpaWlJk3t4OvrC6FQiOPHj2uUp7KyUq8173er\nq66uRnJyskFycjgA0K1bN0RGRuKrr77SWt2rrdjb26OxsRFPPPGE3oGL169fR319vdFl4ijT4ZUA\nYwxXrlzB7NmzATRdxZgyaRpjDEFBQRqDtOzs7DB9+nTs27dPYx2Dlty6dQtXr15VyA8A3t7emDt3\nrtFk5nRu3nzzTfz888+oqqpCfX09Ll++bLS1ZTIZYmNj9YoNkJOdna02oJNjXDq0EsjPz8eff/4J\nmUyG4cOHA2iqBTxs2DCT7hsUFNRqwJiud/vR0dFYsmSJ2TM9cjoPAoEAjz76KL7//nsQEe7evWuU\ndaVSKV555RU4ODhg2LBhep+AH374YZ72xAx0aCXg7OyM1NRUPPzww2CMITs72yz5/gUCAbKystS6\nmJaXl+PGjRsYPnx4qzWAJRIJNm7cqPIUdefOHbXRzhxOW1m9ejW+/vprEJHamtVtwdbWFkKhEMuX\nL8e1a9dw48YNo6zLMS4dWgl4e3sjOTm51YLyxkYgEGDfvn1q86CLxeJWg7zkJCYmIiAgAIMHD1Zq\nT09PR11dnVFk5XAAYMiQIRg3bhyio6ONtmZ1dTXi4+Px9NNPY9SoUQgNDdV5bkVFhVmimDnGCRaz\nWurq6nDq1ClFNaWgoCCz7CsQCODm5gZ/f3+Vvu7du6N79+64erUpl96gQYM0rqMpz8qsWbOMJyyH\n08w777yDhQsXYvr06XB3d0e3bt0MWm/Lli2YMmUK/Pz89J5bW1uL8vJys/3NdmY67EkgOTkZ0dHR\nGDlypNlz5OiSOsLLywteXl4a+4uLi3H06FEsWrTIyNJxOOoJCwtD37598fvvvxucuZOI8MUXXyil\njJbJZDh27JhOkfg9e/bEmDFjDJKBoxsdVgkMGjQIGRkZilrC5kSuBNTl6Ll58yZKSkrQrVs3rU9a\nmzdvxty5c1WC28rKyoxmuONw7mfNmjXYvHlzm4MS5Vy9ehVisRiPPfaYos3GxgbOzs7cnmVldFgl\n4ObmhiNHjpjdHgA0xQrU1NQgNjZWpU+Xwt50X7K4lpSXl5ulhCWnczJlyhS4ublh165dBq0THR2N\nZ599ViVZXGhoKJydW08mnJGRobPtjGMYHVIJyGQyZGVlQSgUIiQkpPUJRoYxBoFAgAceeEClb9iw\nYejRowfq6+s11no9c+YMiEjt/AEDBpi1CAinc8EYw+rVq/Huu+8qSlDqS2NjIzZt2oSlS5e2WY6y\nsrI2z+XoR4dUAn/88Qc2b96MGTNmmLV0XktaswvY29trzNESFRWF5cuXW0x2Tudm7ty5qKurw8GD\nB9s0f+/evfDy8kL37t1V+qqqqjRG07dk8uTJvI6AmeiQSmDu3Lk4f/68Ra6C5AgEAly/fl3l6ic5\nORlisRi2trYqrp8AIBQK8ccff6hNtCWVSs1eFJzT+bC1tcWHH36Izz77rE3zo6Oj8c4778Dd3V2l\nz9HRUatDBMf8dEglIJFIcOLECURERFhMBoFAgCNHjqgca0UikdYn/N9++w2TJk1SazQWi8XcHsAx\nC5GRkbh9+zbOnj2r17zCwkKcPHkSCxYsUNvv5OTUasT+tWvX9K7vzWk7HU4JSCQSHD9+HEOHDkXX\nrl0tJkdgYCCcnZ1VPsynTJmiiBQ+c+aMSnoJbTVYnZ2dMWPGDNMIzOG0oKCgAEuXLlWUoNSVTZs2\n4eGHH241Gl4bRMSvQs1Ih1MCFy5cwE8//WTRqyBAt1iBgIAApRiGq1evIjs72+Kyczg2NjZYtGgR\nkpOTdU4oR0SIjo7GiBEjtGb/vHr1qtY1Bw0aZHCgGkd3OpwSCAsLw9WrVy0SH9ASuRIQiUSKNqFQ\niLS0NMX7nj17wsPDQ/E+Ojoajz76qManoKtXr6KiosJ0QnM4zQQEBGDQoEF49dVXdbYNnDx5EnZ2\ndli9erVae4Acb29vXuDIiuhwSiA3NxdlZWUYPXq0ReXw8/ODSCRSqgcqlUo1RmI2NjZi8+bNmDhx\nosYThEgk4ql1OWZl5cqVSEhIwO3bt1sdGx0drZNXm5+fn9qUKgCQl5eHjIyMNsnKaRsdSgnIZDLs\n2bMH06dPh42NZb81eaxAy9wnnp6eGDt2rOJ9aWkpDhw4AKDJra5///545plnNLqOjh07VmOdAg7H\n2Bw6dAguLi544YUX8O9//1vrWKFQiD///BMhISEGFYJxdHTk6aPNTIdSApWVlYiKirKaO/XW7AKu\nrq4YOHAggCaD8MKFC5X6+VM/x5J4enpCJpPh1Vdfxfbt27V67Gzfvh2TJ08GEelUoWzfvn0oLy9X\naffz80NwcLBBcnP0o0MpAVdXV2RnZ2P69OmWFgVAk4dQSwNYTk4O7ty5o3jv7OyMgIAAFBQU4PTp\n0wCgiNLMz8/Hjh07FGO3bduGwsJCM0nO4QBjxoyBg4MD/Pz8sGTJEvz3v//VOFZ+FRQREaGTZ9Cw\nYcP4E7+V0KGUwKlTpzBgwACrMToJBAIcPHhQkTVRKpWqfbrftGkTFixYgFdeeUVxjdWzZ0+lEpKP\nPPII95jgWIw33ngDUVFRah0Trl69ipycHL1O4L1794aTk5NSm0gkQkJCgsGycvSjQymBP//80+Je\nQbIN90AAABBJSURBVC0JCgqCl5eX4oO9T58+KvnR9+7di19//VUlNoAxppRoy93d3eJ2Dk7nIi8v\nTxGhHhAQgNDQUHzyyScq46Kjo/H000/j6NGjBqWgtrOz41dBFqBDfar8+eefmDhxoqXFUKBLrEBd\nXR0cHR0tGtjG4ajD2dlZyYX55ZdfxqZNm5RSpMu92pYuXQpPT0+dg8RqamqwdetWpTYnJyf079/f\nOMJzdKbDKIH8/HzU1tZi6tSplhZFgUAgQHZ2tiIlbkpKCoRCodKY+Ph4REZG8hoBHKvDx8dH6eQ6\na9YsTJw4Eb/++qui7a+//kK/fv0waNAgjB07VudIX2dnZzz44INGl5mjP60qAcZYFGOsmDGWrmXM\nN4yxm4yxVMZYyH19Noyxi4yxPcYQWBMJCQmYPn26Tp4J5kIeK5CZmQmgyYW15R9JVVUV9uzZg5Ur\nV1rVCYbDkZOWloaUlBTF+7fffhuffvqpwg1UbhDWN+20jY2NSuGa3377jdfOtgC6nARiAGhMWMMY\nmwmgDxH1A/ACgB/vG/IqgCttllBH4uPjMXnyZFNvoxeMMQQFBSlS4oaGhsLV1VXRv3XrVowfPx7X\nrl2zlIgcjlaCgoKU4lbGjBmDnj17IiYmBkVFRThx4gTGjRuHP/74Q++1iUhRTJ6IMGrUKBVjMcf0\ntKoEiOgkAG25CuYA2NQ89hwAD8aYPwAwxnoBeATAr5qnG05jYyOOHj2Kvn37mnKbNqHNLhAVFYXn\nn39eESvA4Vgb7u7uSqmfGWP48ssv8d///AcbPv4Y8x99FAMHDmxTxt6SkhKkp6crEsb16dOHJ46z\nAMawCfQEkNfifUFzGwD8F8CbANpWokhHzp49i759+2LKlCmm3KZNBAQEICMjAw0NDTh16pSiPT09\nHcXFxZgzZw6PAua0KyYVFsI7Oxsffv89lv/2G9i2bVpzBWnC398fc+bM4R/8Fsau9SFtgzH2KIBi\nIkpljIUDaPV/et26dYqvw8PDER4ertNe+/fvt5oo4fvx9/fHmTNn8NprrynZK6KiorB06VKrsmFw\nOK1SWgr23HP4JxFeBxAmFgMrVgDTpgFWEp/TkUlKSlLKR2YMmC4GHcZYIIB4Ihqupu9HAEeJaHvz\n+2sAJqHJFrAEgASAMwA3AH8QkWrJrKZ51NaapiNGjMAHH3ygFFxlLWzfvh2///47fvvtN0VbQ0MD\nevXqheTkZJW4AQ7Hqjl/HoiIAKqqIAVgCwDu7sChQ0CLvFgc88AYAxEZdJTS9TqIQfOT/B4AzzQL\nNA5AJREVE9EaIgogomAAiwEc0aQADKGoqAi5ubmwszPZocYg1NkEdu/ejREjRnAFwGl/CARAc0CY\n4gzb2NjUzmmX6OIiGgfgNID+jLE7jLFljLEXGGN/AwAi2gcgmzF2C8BPAF4yqcT3kZiYiIiICMya\nNcuc2+qMQCDA7du3kZ2drfAC0lY9jMOxanx9gagowNm56QTg7Nz0nl8FtVt0ug4yB229Dlq8eDEi\nIiKs9kOViODk5IRjx47B29sbDg4OGD16NPLz87k7HKf9UloK5OQ0nQC4ArAY5rwOskokEgkOHjyI\nUaNGqUTiWguMMQQHB8PNzQ39+vXDhg0bsHjxYq4AOO0bX98mGwBXAO2edq0Ezp8/j169eqG2thZl\nZWWWFkcjcruATCZDTEyM1Z5aOBxO58M6rak6sn//fjz88MN44IEHLC2KVnr27InExETU1taia9eu\nGDlypKVF4nA4HAAdQAm0VvbOGvDw8EBGRgby8/P5KYDD4VgV7fY6qKSkBDdu3MD48eNx/fp1S4uj\nldCBAyG5dw9HDh/Gk08+aWlxOBwOR0G7VQIHDhzAlClTwBhDRkaGpcXRzNatEPz97zh64QIeramB\nF6+cxOFwrIh26yK6ZMkSPPTQQ/jb3/5mQqkMpLQUCAzE3bo6dAdwEMA0Z2cgN5d7VXA4HIPptC6i\nMpkMiYmJVlVKUi05OYCDA/zQlGN7CgDY2ze1czgcjhXQLpVASkoK/Pz8EBAQgLKyMhQXF1taJPU0\nh9jboKnIgg3AQ+w5HI5V0S6VQEJCguIUUFZWZr2lGXmIPYfDsXLapU1g/Pjx+OijjzBt2jQTS2Uk\neIg9h8MxAcawCbQ7JVBeXo6goCCUlpbC0dHRDJJxOByOddIpDcMHDx7EpEmTFArgxo0baGhosLBU\nHA6H0z5pd0rg/ipiWVlZkEgkFpSIw+Fw2i/t6jpIJpOhR48eOH36NIKDg80kGYfD4Vgnne46KDU1\nFR4eHlwBcDgcjpFoV0ogISFB6SpIKBQiKyvLghJxOBxO+6ZdKQF56mg5tbW11hsjwOFwOO2AdmMT\nqKysRO/evVFSUgJnZ2czSsbhcDjWSaeyCRw6dAgTJ07kCoDD4XCMSLtRAve7hgJN7qGVlZUWkojD\n4XDaP+1CCRCRilEYaIoerqurs5BUHA6H0/5pF+UlMzIy4OTkhL59+yq1h4aGWkgiDofD6Ri0i5OA\n/CqIMYPsHxwOh8O5j1aVAGMsijFWzBhL1zLmG8bYTcZYKmMspLmtF2PsCGMskzGWwRj7R1uFbJk6\nWo5EIsGlS5fauiSHw+FwoNtJIAbADE2djLGZAPoQUT80FdD6sblLAmAVEQ0BMB7Ay4yxgfoKWF1d\njZSUFEyePFmpXSKRoLy8XN/lOBwOh9OCVpUAEZ0EUKFlyBwAm5rHngPgwRjzJ6K7RJTa3C4CcBVA\nT30FPHLkCMaPHw8XFxeldicnp/ZTT4DD4XCsFGPYBHoCyGvxvgD3fdgzxgQAQgCc03fx+6OEORwO\nh2M8TO4dxBhzBfA7gFebTwQaWbduneLr8PBwTJo0Cfv378drr72mMjY/Px8A0KtXL2OKy+FwOFZL\nUlISkpKSjLqmTmkjGGOBAOKJaLiavh8BHCWi7c3vrwGYRETFjDE7AHsB7Ceir1vZQyVtxJUrVzBz\n5kzk5OSoeAbdunULMpkM/fv3b1V+DofD6YgYI22EricB1vxSxx4ALwPYzhgbB6CSiIqb+6IBXGlN\nAWhCm2vo/TEDHA6Hw9EfXVxE4wCcBtCfMXaHMbaMMfYCY+xvAEBE+wBkM8ZuAfgJwMrmeQ8AeArA\nFMbYJcbYRcaYXpf76qKEORwOh2M8rDaLqEgkQvfu3VFYWAg3NzelsQ0NDbh06RLGjRtnbjE5HA7H\naujQWUSTkpIwduxYFQUANMUIWIvy4nA4nPaM1SoBba6hLi4uGD9+vJkl4nA4nI6HVSoBIlKbOprD\n4XA4xsUqlcDNmzchFosxdOhQtf3nzp3jdQQ4HA7HCFilEpBfBWnKGurg4AA7u3aRBZvD4XCsGqtU\nAq25ho4cORKurq5mlIjD4XA6JlbnIlpXVwc/Pz/k5eXB09PT0mJxOByO1dIhXUSTkpIwcuRIjQog\nKysLmZmZZpaKw+FwOiZWd7He2lWQi4sLHBwczCgRh8PhdFys7jqof//+2L59O0aOHGlpkf5/e/cW\nY9cUx3H8+zu9xJQqFUaoS93qUkz6UEXEREWppDyJiQhSiQeXBhHqRR+9iEsQEdUgVFyCaqRaaU7E\ng1sQSmm16eiUmUYwKdFkTP4e9q4ezZwzoz3O3nPW7/N09jp7zvnv/+zs/1l77b2XmVmptd3poC1b\ntrBr1y66urqKDsXMLAmlKgJr1qxhwYIFdS8N3b17N6tXr25xVGZm7atURWC0u4QrlYofIW1m1kSl\nGhOYOnUq27ZtY/r06UWHY2ZWem03JjB79mwXADOzFipVERjtgXHr1q1j586dLYrGzKz9laoI1Ht0\n9B6zZs0acX4BMzPbP6UaExju76fS2Vl0KGZm40LbjQlUZs6ElSv/1TY0NES1WmV4eLigqMzM2lep\nigB//gmLF9O/YQN9fX1AVummTJlCpVKuUM3M2kH5jqyTJvH7pk0MDg4CMHHiRObOnVv3BjIzM9t/\npRoTCICODujthSOPLDokM7NSa7sxATo6YPlyFwAzsxYZtQhIWi5pQNKXDdZ5TNJmSV9I6qppv1zS\nt5I2Sbp31Gh6e6GnZ8zBm5nZgRlLT2AFsKDem5KuAE6OiFOBW4Cn8vYK8Hj+t2cBPZJOb/hN7gGY\nmbXUqEUgIj4Afm2wylXA8/m6HwHTJHUCc4HNEdEbEUPAy/m6ZmZWEs0YEzgW2F6z3Je31Ws3M7OS\n+D8Ghn0tp5nZONGMOYZ3AMfVLM/I2yYDx4/QXteyZcv+ed3d3U13d3cTwjMzaw/VapVqtdrUzxzT\nfQKSTgTejoizR3hvIXBrRFwpaR7wSETMkzQB+A6YD/wEfAz0RMTGOt8RZblnwcxsPGjGfQKj9gQk\nvQR0A0dI+gF4gOxXfkTE0xHxjqSFkr4H/gBuIntzWNJtwFqy007L6xUAMzMrRrnuGC5JLGZm40H7\n3TFsZmYt5SJQQs0e+BmvnIe9nIu9nIvmchEoIe/kGedhL+diL+eiuVwEzMwS5iJgZpawUl0dVHQM\nZmbjzYFeHVSaImBmZq3n00FmZglzETAzS1jhReA/zz7WRiTNkLRe0teSvpJ0R95+uKS1kr6T9K6k\naUXH2iqSKpI+k7QqX04yF5KmSXpV0sZ8/zgv4VzcKWmDpC8lvShpciq5GGlmx0bbLmlpPsvjRkmX\njeU7Ci0C+zX7WHv5C7grIs4Czgduzbf/PuC9iJgFrAeWFhhjqy0BvqlZTjUXjwLvRMQZwLnAtySY\nC0nHALcDcyLiHLLnnfWQTi5GmtlxxG2XdCZwDXAGcAXwpKRRB42L7gkkPftYRPRHxBf569+BjWSP\n3L4KeC5f7Tng6mIibC1JM4CFwDM1zcnlQtKhwEURsQIgIv6KiEESzEVuAnCwpIlAB9kj6ZPIRZ2Z\nHett+yLg5Xx/2QZsJjvGNlR0EfDsY7n8cd1dwIdAZ0QMQFYogKOKi6ylHgbuAWovWUsxFzOBnyWt\nyE+NPS1pCgnmIiJ+BB4CfiA7+A9GxHskmIsaR9XZ9n2PpzsYw/G06CJggKRDgNeAJXmPYN/rdtv+\nOl5JVwIDec+oURe27XNBdspjDvBERMwhe0T7faS5XxxG9sv3BOAYsh7BdSSYiwYOaNuLLgI7+I+z\nj7WbvIv7GvBCRLyVNw9I6szfPxrYWVR8LXQhsEjSVmAlcImkF4D+BHPRB2yPiE/z5dfJikKK+8Wl\nwNaI+CUihoE3gAtIMxd71Nv2erM8NlR0EfgEOEXSCZImA9cCqwqOqdWeBb6JiEdr2lYBN+avbwDe\n2veP2k1E3B8Rx0fESWT7wfqIuB54m/RyMQBsl3Ra3jQf+JoE9wuy00DzJB2UD3LOJ7twIKVciH/3\njutt+yrg2vzqqZnAKWQzOjb+8KLvGJZ0OdmVEHtmH3uw0IBaSNKFwPvAV2RdugDuJ/vHvUJW1XuB\nayLit6LibDVJFwN3R8QiSdNJMBeSziUbIJ8EbCWbsW8CaebiAbIfBkPA58DNwFQSyEXtzI7AANnM\njm8CrzLCtktaCiwmy9WSiFg76ncUXQTMzKw4RZ8OMjOzArkImJklzEXAzCxhLgJmZglzETAzS5iL\ngJlZwlwEzMwS5iJgZpawvwGw/SENC6kKzQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1150498d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_pivots(X, pivots)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following shows how you can use `pivots_to_modes` to inspect the segments."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>-1</th>\n",
       "      <td>43.0</td>\n",
       "      <td>-0.004875</td>\n",
       "      <td>0.009995</td>\n",
       "      <td>-0.025602</td>\n",
       "      <td>-0.011249</td>\n",
       "      <td>-0.005225</td>\n",
       "      <td>0.000075</td>\n",
       "      <td>0.017768</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>56.0</td>\n",
       "      <td>0.005506</td>\n",
       "      <td>0.009663</td>\n",
       "      <td>-0.018131</td>\n",
       "      <td>0.000144</td>\n",
       "      <td>0.004643</td>\n",
       "      <td>0.010315</td>\n",
       "      <td>0.028133</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count      mean       std       min       25%       50%       75%  \\\n",
       "-1   43.0 -0.004875  0.009995 -0.025602 -0.011249 -0.005225  0.000075   \n",
       " 1   56.0  0.005506  0.009663 -0.018131  0.000144  0.004643  0.010315   \n",
       "\n",
       "         max  \n",
       "-1  0.017768  \n",
       " 1  0.028133  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "modes = pivots_to_modes(pivots)\n",
    "pd.Series(X).pct_change().groupby(modes).describe().unstack()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calculate the peak to valley returns for all of the segments."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.09370263, -0.05981991,  0.07204542, -0.03419711,  0.04289563,\n",
       "       -0.04197655,  0.03001853, -0.05506552,  0.07707074, -0.016124  ])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "compute_segment_returns(X, pivots)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, compute the oft-quoted (in financial literature) `max_drawdown`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.06755575755355037"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_drawdown(X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pandas Compatability\n",
    "---\n",
    "The `peak_valley_pivots` function works on pandas `series` assuming the index is either a DateTimeIndex or is \\[0, n). [Pandas](http://pandas.pydata.org/) is great."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108274dd8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pandas_datareader import get_data_yahoo\n",
    "\n",
    "X = get_data_yahoo('GOOG')['Adj Close']\n",
    "pivots = peak_valley_pivots(X.values, 0.2, -0.2)\n",
    "ts_pivots = pd.Series(X, index=X.index)\n",
    "ts_pivots = ts_pivots[pivots != 0]\n",
    "X.plot()\n",
    "ts_pivots.plot(style='g-o');"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
